The Internet-of-Things (IoT), as well as the Internet, is a distributed system of systems. Those systems link to each other through their communications with one another. The communications may take place in a publish-subscribe arrangement, where senders of messages (publishers) do not program the messages to be sent directly to specific receivers (subscribers) but instead characterize published messages into classes without knowledge of which subscribers, if any, there may be. Similarly, subscribers express interest in one or more classes and only receive messages that are of interest, without knowledge of which publishers, if any, there are. Producers may send data to a list of subscribers regularly according to an expected sampling rate or intermittently according to a trigger event such as when sampled data changes value. Data consumers may perform a topic specific data analysis and transformation to produce a result that adds value, dimension, or clarity to one or more data input streams. The resulting data stream may then be consumed by other subscribers.
Secure operation of such a system requires construction of groups, denoted by a topic name where multiple producers and consumers work together to achieve a common objective. The topic name represents this higher-level abstraction of a system of data subscription, transformation and publication. The data processing abstraction may further be expanded to support topic to topic interaction where a first topic produces an output that is consumed by a second topic and so forth. A data flow model such as this may be arbitrarily connected or nested so as to allow participation by virtually any form of data and any form of data flow.